草庐IT

simplexml - PHP simplexml 实体

全部标签

java - 为具有生成 ID 的实体实现 equals() 时的最佳做法是什么

如果我有一个包含A、B、C、D列的表A:自动生成的ID(PK)B&C:组合必须是唯一的(这些是在业务意义上实际定义身份的列)D:其他一些列现在,如果我要基于这个表创建业务对象(例如在Java中),哪个是equals()方法的更好实现:根据A定义相等性根据B和C定义相等或者,我选择两者中的哪一个并不重要。 最佳答案 肯定是B和C,因为您希望equals()契约在实体被持久化之前就有效。你说你自己:thesearethecolumnsthatactuallydefineidentityinthebusinesssense如果是这样,那么

java - 是否真的值得为实体类实现 toString()

始终建议重写(实现)类的toString()方法。JavaAPIdocumentation本身说“建议所有子类重写此方法。”。Bloch,在EffectiveJava中有一项“始终覆盖toString”。只有傻瓜才会反驳布洛赫,对吧?然而,我开始怀疑这个建议:是否真的值得为实体类实现toString()?我将尝试阐述我的推理。实体对象具有唯一标识;它永远不会与另一个对象相同,即使这两个实体具有相同的属性值。也就是说,(对于非空x),以下不变量适用于实体类(根据定义):x.equals(y)==(x==y)toString()方法返回一个“文本表示”其对象的字符串(用JavaAPI的话说

java - 在 CriteriaQuery 期间初始化 JPA 实体的 transient 属性

我想知道是否可以在条件查询期间初始化实体的transient属性。例子@EntitypublicSampleEntity{@Idprivatelongid;[moreattributes]@TransientprivateStringsomeTransientString;[gettersandsetters]}现在我想编写一个加载所有SampleEntity并自动将someTransientString设置为imamightlyf​​inestring的CriteriaQuery。我有类似以下SQL的想法:SELECTIDASID,[..],'imamightilyfinestrin

java - 当 ID 为 null 并在数据库中自动生成时持久化实体

我将EclipseLink与JavaDB一起使用,每次我尝试保留新用户实体时,我都会收到与新用户实体的ID字段为空这一事实相关的错误。我知道它是空的——这应该是因为ID字段是作为数据库中的身份生成的。还是我错了?我已经尝试将@GeneratedValue添加到实体,但无论使用何种生成策略,都会导致错误。我也看过here,here,和here但这些问题似乎与我的问题并不完全相关。下面的异常总是在调用EntityManager.persist(user)时发生。我还尝试删除@NotNull和@GeneratedValue,奇怪的是,它通过了持久调用——但只是在提交时失败。据我所知,我已经把

java - JPA : Extending the persistence context vs. 分离实体

似乎有两种模式可以使用JPA实现跨越多个http请求的业务事务:entity-manager-per-request与分离的实体扩展持久性上下文这些模式各自的优势是什么?什么时候应该首选哪个?到目前为止,我想出了:扩展的持久性上下文保证对象身份等同于数据库身份,简化了编程模型并可能消除了为实体实现equals的需要分离的实体比扩展的持久性上下文需要更少的内存,因为持久性上下文还必须存储实体的先前状态以进行更改检测不再引用的分离实体有资格进行垃圾收集;必须首先显式分离持久对象但是,由于没有任何JPA实践经验,我确信我错过了一些重要的东西,因此提出了这个问题。以防万一:我们打算使用由Hib

java - 从给定的实体类中截断/删除

我的实体类可以通过方法使用。我试图弄清楚,如何通过JPAJPQL或CriteriaAPI发出截断或删除。我认为criteriaAPI对于处理类来说更自然,而truncate是一个更快的操作,所以这些是首选。到目前为止,这是我放在一起的,但不确定要添加/更改什么。CriteriaBuildercb=this._em().getCriteriaBuilder();cb.createQuery(_entityClass()).from(_entityClass());注意:_entityClass返回MyEntity.class,我没有对MyEntity的其他引用,这是一个更通用的实现。

java - 关于 JPA Cascade 和删除实体的问题

我的数据模型中有两个名为User和UserProfile的实体。以下是它们的映射方式。来自用户实体的代码:@OneToOne(cascade=CascadeType.ALL)@PrimaryKeyJoinColumnpublicUserProfilegetUserProfile(){returnthis.userProfile;}publicvoidsetUserProfile(UserProfileuserProfile){this.userProfile=userProfile;}来自UserProfile实体的代码:@OneToOne(mappedBy="userProfile"

java - 为什么选择 JMS 作为异步解决方案?为什么它比简单的实体 bean 更好?

在我参与的大多数项目中,异步解决方案的选择一直是很多讨论的来源......每次一个实体bean就足以管理一个队列:我们只需将一条消息(票证)存储在一个表中,然后一个处理cron将队列拆栈。这个简单的解决方案的优点是非常简单,它基于数据库的事务上下文,我们可以在执行期间管理接收到的消息的状态。因此我提出以下问题:1)我们有什么兴趣使用JMS?JMS有什么好处?2)在哪种情况下更喜欢JMS而不是实体bean?感谢您的回复和反馈! 最佳答案 1)WhatinterestwehavetouseJMS?Whatarethebenefitsof

java - Java 实体的 id 字段的 Long 与 Integer

Jpa实体生成器将整数类型分配给我的实体的id字段。我的数据库中相应的属性/列是串行类型(是的postgres)。我还将整数类型分配给我的实体id字段。但是我在thispage上看到了LonggetId()的用法。.我还在geomajas示例中看到了这种类型的类型分配。使用Integer时有什么陷阱吗?我的意思是,是的,您必须小心ID不低于0的整数,但同时您还必须确保您的LongId不大于2,147,483,647。那么这里有什么交易?编辑:我混淆了Long和无符号整数,所以我想我在想什么是“java实体的id字段的无符号整数与Integer”现在我对长整数和无符号整数的混淆已经消失了

java - Hibernate IDENTITY 与 SEQUENCE 实体标识符生成器

这article说:Unlikeidentity,thenextnumberforthecolumnvaluewillberetrievedfrommemoryratherthanfromthedisk–thismakesSequencesignificantlyfasterthanIdentity在identity的情况下是不是说ID来自磁盘?如果是,那么是哪个磁盘以及如何?使用序列,我可以在日志中看到,在插入新记录时对数据库进行了额外的选择查询。但是在身份的情况下,我没有在日志中找到额外的选择查询。那么序列如何变得比身份更快? 最佳答案